package com.example.cartservice.controller;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.cartservice.domain.entity.Good;
import com.example.cartservice.service.ICartService;
import com.example.cartservice.utils.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/**
 * 购物车控制器
 * 处理购物车相关的商品查询请求
 *
 * @author czwa
 */
@RestController
@RequestMapping("/cart")
public class CartController {

    @Autowired
    private ICartService cartService;

    /**
     * 测试接口
     * 用于验证服务是否正常运行
     *
     * @return 固定返回"OK"字符串
     */
    @GetMapping("/test")
    public String test() {
        return "OK";
    }

    /**
     * 获取所有商品信息
     *
     * @return 包含所有商品列表的成功响应
     */
    @GetMapping
    public Result getAllGoods() {
        return Result.success(cartService.getAllGoods());
    }

    /**
     * 按条件查询商品信息
     *
     * @param name 商品名称关键词（可选参数）
     * @return 包含查询结果的响应：
     *         - 当name为null时返回所有商品
     *         - 否则返回名称包含关键词的商品列表
     */
    @GetMapping("/condition")
    public Result getAllGoodsByCondition(@RequestParam(required = false) String name) {
        if (name == null) {
            return Result.success(cartService.getAllGoods());
        }

        // 构建模糊查询条件
        QueryWrapper<Good> queryWrapper = new QueryWrapper<Good>().like("name", name);
        return Result.success(cartService.list(queryWrapper));
    }
}